#ifndef _u64_mask_h_ 
#define _u64_mask_h_
static const unsigned long long int u64_mask_table[] = {
0,
72340172838076673,144680345676153346,217020518514230019,289360691352306692,
361700864190383365,434041037028460038,506381209866536711,578721382704613384,
651061555542690057,723401728380766730,795741901218843403,868082074056920076,
940422246894996749,1012762419733073422,1085102592571150095,1157442765409226768,
1229782938247303441,1302123111085380114,1374463283923456787,1446803456761533460,
1519143629599610133,1591483802437686806,1663823975275763479,1736164148113840152,
1808504320951916825,1880844493789993498,1953184666628070171,2025524839466146844,
2097865012304223517,2170205185142300190,2242545357980376863,2314885530818453536,
2387225703656530209,2459565876494606882,2531906049332683555,2604246222170760228,
2676586395008836901,2748926567846913574,2821266740684990247,2893606913523066920,
2965947086361143593,3038287259199220266,3110627432037296939,3182967604875373612,
3255307777713450285,3327647950551526958,3399988123389603631,3472328296227680304,
3544668469065756977,3617008641903833650,3689348814741910323,3761688987579986996,
3834029160418063669,3906369333256140342,3978709506094217015,4051049678932293688,
4123389851770370361,4195730024608447034,4268070197446523707,4340410370284600380,
4412750543122677053,4485090715960753726,4557430888798830399,4629771061636907072,
4702111234474983745,4774451407313060418,4846791580151137091,4919131752989213764,
4991471925827290437,5063812098665367110,5136152271503443783,5208492444341520456,
5280832617179597129,5353172790017673802,5425512962855750475,5497853135693827148,
5570193308531903821,5642533481369980494,5714873654208057167,5787213827046133840,
5859553999884210513,5931894172722287186,6004234345560363859,6076574518398440532,
6148914691236517205,6221254864074593878,6293595036912670551,6365935209750747224,
6438275382588823897,6510615555426900570,6582955728264977243,6655295901103053916,
6727636073941130589,6799976246779207262,6872316419617283935,6944656592455360608,
7016996765293437281,7089336938131513954,7161677110969590627,7234017283807667300,
7306357456645743973,7378697629483820646,7451037802321897319,7523377975159973992,
7595718147998050665,7668058320836127338,7740398493674204011,7812738666512280684,
7885078839350357357,7957419012188434030,8029759185026510703,8102099357864587376,
8174439530702664049,8246779703540740722,8319119876378817395,8391460049216894068,
8463800222054970741,8536140394893047414,8608480567731124087,8680820740569200760,
8753160913407277433,8825501086245354106,8897841259083430779,8970181431921507452,
9042521604759584125,9114861777597660798,9187201950435737471,9259542123273814144,
9331882296111890817,9404222468949967490,9476562641788044163,9548902814626120836,
9621242987464197509,9693583160302274182,9765923333140350855,9838263505978427528,
9910603678816504201,9982943851654580874,10055284024492657547,10127624197330734220,
10199964370168810893,10272304543006887566,10344644715844964239,10416984888683040912,
10489325061521117585,10561665234359194258,10634005407197270931,10706345580035347604,
10778685752873424277,10851025925711500950,10923366098549577623,10995706271387654296,
11068046444225730969,11140386617063807642,11212726789901884315,11285066962739960988,
11357407135578037661,11429747308416114334,11502087481254191007,11574427654092267680,
11646767826930344353,11719107999768421026,11791448172606497699,11863788345444574372,
11936128518282651045,12008468691120727718,12080808863958804391,12153149036796881064,
12225489209634957737,12297829382473034410,12370169555311111083,12442509728149187756,
12514849900987264429,12587190073825341102,12659530246663417775,12731870419501494448,
12804210592339571121,12876550765177647794,12948890938015724467,13021231110853801140,
13093571283691877813,13165911456529954486,13238251629368031159,13310591802206107832,
13382931975044184505,13455272147882261178,13527612320720337851,13599952493558414524,
13672292666396491197,13744632839234567870,13816973012072644543,13889313184910721216,
13961653357748797889,14033993530586874562,14106333703424951235,14178673876263027908,
14251014049101104581,14323354221939181254,14395694394777257927,14468034567615334600,
14540374740453411273,14612714913291487946,14685055086129564619,14757395258967641292,
14829735431805717965,14902075604643794638,14974415777481871311,15046755950319947984,
15119096123158024657,15191436295996101330,15263776468834178003,15336116641672254676,
15408456814510331349,15480796987348408022,15553137160186484695,15625477333024561368,
15697817505862638041,15770157678700714714,15842497851538791387,15914838024376868060,
15987178197214944733,16059518370053021406,16131858542891098079,16204198715729174752,
16276538888567251425,16348879061405328098,16421219234243404771,16493559407081481444,
16565899579919558117,16638239752757634790,16710579925595711463,16782920098433788136,
16855260271271864809,16927600444109941482,16999940616948018155,17072280789786094828,
17144620962624171501,17216961135462248174,17289301308300324847,17361641481138401520,
17433981653976478193,17506321826814554866,17578661999652631539,17651002172490708212,
17723342345328784885,17795682518166861558,17868022691004938231,17940362863843014904,
18012703036681091577,18085043209519168250,18157383382357244923,18229723555195321596,
18302063728033398269,18374403900871474942,18446744073709551615,
};

#endif
